不同的Linux
之间copy
文件常用有3种方法:
第一种就是ftp
,也就是其中一台Linux安装ftp Server
,这样可以另外一台使用ftp的client
程序来进行文件的copy
。
第二种方法就是采用samba
服务,类似Windows
文件copy
的方式来操作,比较简洁方便。
第三种就是利用scp
命令来进行文件复制。
scp
是有Security
的文件copy
,基于ssh登录。操作起来比较方便
命令基本格式:
scp [OPTIONS] file_source file_target
eg: 从 本地 复制到 远程
scp /home/daisy/full.tar.gz root@172.19.2.75:/home/root
(然后会提示你输入另外那台172.19.2.75主机的root用户的登录密码,接着就开始copy了),复制目录加参数 -r 即可
下面介绍参数可选项。
-1 强制scp命令使用协议ssh1。
-2 强制scp命令使用协议ssh2 。
-4 强制scp命令只使用IPv4寻址 。
-6 强制scp命令只使用IPv6寻址 。
-B 使用批处理模式(传输过程中不询问传输口令或短语)。
-C 允许压缩。(将-C标志传递给ssh,从而打开压缩功能) 。
-p 保留原文件的修改时间,访问时间和访问权限。
-q 不显示传输进度条。
-r 递归复制整个目录。
-v 详细方式显示输出。scp和ssh(1)会显示出整个过程的调试信息。这些信息用于调试连接,验证和配置问题。
-c cipher 以cipher将数据传输进行加密,这个选项将直接传递给ssh。
-F ssh_config 指定一个替代的ssh配置文件,此参数直接传递给ssh。
-i identity_file 从指定文件中读取传输时使用的密钥文件,此参数直接传递给ssh。
-l limit 限定用户所能使用的带宽,以Kbit/s为单位。
-o ssh_option 如果习惯于使用ssh_config(5)中的参数传递方式。
-P port 注意是大写的P, port是指定数据传输用到的端口号。
-S program 指定加密传输时所使用的程序。此程序必须能够理解ssh(1)的选项。
注意两点:
1.如果远程服务器防火墙有特殊限制,scp便要走特殊端口,具体用什么端口视情况而定,命令格式如下:
#scp -p 4588 file_source file_target
2.使用scp要注意所使用的用户是否具有可读取远程服务器相应文件的权限。
3.scp报错:not a regular file
原因是 这样是相当于下载文件夹,而非文件。
解决:加-r参数
4.permission denied
其他目录对此目录没有权限
解决:
在此目录打开终端files target使用./
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。